The invention relates to the structure of a real-time database, for example a database for computer integrated manufacturing systems.
A typical real-time system consists of two closely coupled subsystems, a controlled process and a controller. The controlled process could be, for example, automated manufacturing, weapon system control, or stock exchange transaction management. The controller is a computer which monitors the status of the controlled process and supplies appropriate commands.
In real-time systems, the supported applications have stringent timing constraints. Two critical parameters of real-time systems are response time and data measurement rate. Such systems cannot miss any data and they must respond to events that are asychronous and non-recurrent. Consequently, real-time systems must access data within predetermined time limits. Failure to access data within the limits can result in a loss of control over the process. In many cases, loss of control is not considered a degradation of performance; it is considered a failure.
In the context of computers, a "real-time" program is one which runs continuously, reacting spontaneously to changing inputs. For computer programs, the opposite of "real-time" is "batch" or "disk-based". Real-time programs are much more closely involved with their environments, which means the design and implementation of real-time programs must meet more stringent performance requirements.
Although conventional disk-based database systems provide efficient means for storing data and convenience features such as user-friendly interfaces, they rely on secondary storage to store the database. Transaction processing requires accessing data stored in the secondary storage, so transaction response time can be on the order of 30 milliseconds. Although this is fast enough for traditional applications involving a human user, it is not fast enough for real-time applications such as process control. Consequently, performance requirements and design issues for real-time database systems differ widely from those of conventional database systems, which do not have such severe constraints on response time. Disk-based database management software, whether it uses a hierarchical, network, or relational structure, cannot retrieve or even store data fast enough to meet the needs of many real-time applications.
A real-time database must be faster than a disk database, in many cases as much as 10 to 100 times faster. Also, a real-time database should have a special area for storing blocks of data, such as, recipes or unformatted data. There is a tradeoff between speed and features, and some capabilities generally found in a conventional database must be scaled down or omitted in a real-time database.
The most important performance criterion for a real-time database is response time. It must have a predictable, very fast data access rate. Accessing data at a very fast rate usually means that the data must be stored in memory rather than secondary storage. For multiple devices or processes to access the data it should be stored in shared memory. Access speed has a very high priority, but data integrity cannot be sacrificed in implementing data manipulation routines.
The search and data manipulation capabilities of the real-time database allow an application to access selected data in a timely and efficient fashion. Indexed searching contributes to high data access rates. Data access must be provided for configuration data, real-time process values, access codes, process recipe values, and other process-related information. Adding, deleting and modifying data on a real-time basis allows the application to organize the data and use the data in the most effective way.
Computer integrated manufacturing (CIM) demands a planned structure of on-line real-time data processing. This requires guaranteed access rates and performance protection so that an industrial process can continually be monitored and controlled. Guaranteed access rate means that no matter what the situation, any time-critical application can retrieve data within a certain very short time period, on the order of 10 to 100 microseconds.
Computer integrated manufacturing is fundamentally a shared database, so data management is an essential part of the system. The performance features of a real-time database are critical to the operation of the CIM system, and must serve varying needs at the workcell control level and the area management level of the CIM system.
The workcell control and area management levels are closely coupled. The area manager level places more emphasis on data management and analysis, but it may still have some special or real-time requirements of data. The area manager may need fast access to data for generation of trend charts, process reports, control of material reports, and communication with both higher level and lower level computer systems. The area manager might also transfer large blocks of data when transferring action recipes down to the workcell.
The workcell area has a more immediate effect on the control process. Therefore, it is typically involved with more real-time functions. Workcell level functions include supervision of programmable logic controllers (PLCs), loop controllers (LCs), and numerical controllers (NCs), data logging, alarm management, and process graphics.
Information usually originates on the workcell control level of the CIM model. It is that level that physically gathers most of the data used in the other levels. The variety of equipment in the workcell makes it important for the database to be able to consolidate the data in a unique and understandable format at very high rates. The workcell devices often require transfers of unformatted data at high rates. This requires the database to provide storage areas dedicated to large blocks of unstructured data.
Workcell applications performing monitoring and control functions must instantaneously store large amounts of data from devices, such as, PLC's, NC's, robots, and automatic-guided vehicles. Other applications at the workcell level might also require special storage of data for such things as local data control, manipulation and display, and local buffering and retrieval. Adding, deleting, modifying and organizing the data from each of these devices on a real-time basis defines the performance and functionality requirements for a real-time database at the workcell level.
While providing the above-described functionality, it is desirable for real-time databases to incorporate some of the characteristics of conventional disk-based databases. In particular, using a relational style, table based architecture has advantages. This allows easy transfer of data between the real-time database and traditional disc-based databases that perform functions such as off-line analysis of real-time data. Chaining data tables together to tie related data is another desirable feature. Providing search keys and indexes is also important. In a real-time database, the searching function should combine speed and flexibility as much as possible. Finally, data integrity is important and cannot be compromised by the data manipulation and access routines used to provide guaranteed response time
Currently there are two dominant approaches to satisfying the need for a real-time database
The first is to construct a custom memory resident data management facility Although this approach achieves the desired performance level it does not supply a tool that is generic or flexible The custom database is tied to a particular type of application. As a result, the custom implementation is difficult to modify with changing needs and it cannot be reused in other applications
The other approach is to use the file system. This common solution has two major drawbacks. One is that the structure and access features are primitive and limited. The other is that the performance is lower than that available with a memory resident database. As performance requirements increase, the file base solution will become too slow.